import multiprocessing
from joblib import Parallel, delayed
#parallelize function build
def parallelize_loop(i, corpus):
#get max topic by corpus index
topics = model.get_document_topics(corpus, minimum_probability = 0.0)[i]
maxTuple = max(topics, key=itemgetter(1))
#write local max to dict
dicTemp = {'id': i, 'prb': maxTuple[1], 'cluster': maxTuple[0]}
return dicTemp
#parallelize function apply
num_cores = multiprocessing.cpu_count()
results = Parallel(n_jobs=num_cores)(delayed(parallelize_loop)(i, corpus) for i in range(len(corpus)))
#join list of dicts
modeled = pd.DataFrame(results)