if __name__ == '__main__':
    pool = Pool(processes=4)
mgr = MyManager()
mgr.start()
multi_d = mgr.defaultdict(int)
for k in 'mississippi':
    pool.apply_async(test, (k, multi_d))
pool.close()
pool.join()
print(list(multi_d.items()))
Using defaultdict with multiprocessing?