When parallel processing is disabled, this just returns the number of available
cores. Otherwise, it chooses the largest integer that keeps
cores_per_fit * (n_fits / chunk_size) <= total_cores
, i.e. it avoids
running so many chains in parallel that there will be more chains than cores.
default_cores_per_fit(
n_fits,
total_cores = future::availableCores(),
chunk_size = default_chunk_size(n_fits)
)