Llenar un diccionario en paralelo con multiprocesamiento

Ayer hice una pregunta:Lectura de datos en paralelo con multiproceso

Obtuve muy buenas respuestas e implementé la solución mencionada en la respuesta que marqué como correcta.

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]

Sin embargo, esta solución lleva la misma cantidad de tiempo que si simplemente repitierapeptide_kd.keys() y llenar elDataFrames uno a uno. ¿Por qué es así? ¿Hay alguna manera de llenar los dictados deseados en paralelo y obtener un aumento de velocidad? Lo estoy ejecutando en un HPC de 48 núcleos.