Preencha um dicionário em paralelo com o multiprocessamento

Ontem fiz uma pergunta:Lendo dados em paralelo com multiprocessos

Eu obtive respostas muito boas e implementei a solução mencionada na resposta que marquei como correta.

def read_energies(motif):
    os.chdir("blabla/working_directory")
    complx_ener = pd.DataFrame()
    # complex function to fill that dataframe 
    lig_ener = pd.DataFrame()
    # complex function to fill that dataframe 
    return motif, complx_ener, lig_ener

COMPLEX_ENERGIS = {}
LIGAND_ENERGIES = {}
p = multiprocessing.Pool(processes=CPU)
for x in p.imap_unordered(read_energies, peptide_kd.keys()):
    COMPLEX_ENERGIS[x[0]] = x[1]
    LIGAND_ENERGIES[x[0]] = x[2]

No entanto, esta solução leva a mesma quantidade de tempo como se eu apenas repetissepeptide_kd.keys() e preencha oDataFrames um por um. Por que? Existe uma maneira de preencher os dicionários desejados em paralelo e obter um aumento de velocidade? Estou executando-o em um HPC de 48 núcleos.

questionAnswers(1)

yourAnswerToTheQuestion