code: def evaluate_topic_models(data, varying_parameters, constant_parameters=None, n_max_processes=None, return_models=False,
                            metric=None, **metric_kwargs):
      
      mp_eval = MultiprocEvaluationRunner(MultiprocEvaluationWorkerLDA, AVAILABLE_METRICS, data,
                                          varying_parameters, constant_parameters,
                                          metric=metric or DEFAULT_METRICS, metric_options=metric_kwargs,
                                          n_max_processes=n_max_processes, return_models=return_models)
  
      return mp_eval.run()
docs: Compute several Topic Models in parallel using the "lda" package. Calculate the models using a list of varying
      parameters `varying_parameters` on a single Document-Term-Matrix `data`. Pass parameters in `constant_parameters`
      dict to each model calculation. Use at maximum `n_max_processes` processors or use all available processors if None
      is passed.
      `data` must be a Document-Term-Matrix (NumPy array/matrix, SciPy sparse matrix).
      Will return a list of size `len(varying_parameters)` containing tuples `(parameter_set, eval_results)` where
      `parameter_set` is a dict of the used parameters and `eval_results` is a dict of metric names -> metric results.