A straight forward, and super-ugly answer to your question is something like this:
import itertools
def slice_it_up(d, n):
return [{x for x in itertools.islice(d.items(), i, i+n)} for i in range(0, len(d), n)]
d = {'key1': 1, 'key2': 2, 'key3': 3, 'key4': 4, 'key5': 5}
dd = slice_it_up(d, 3)
print(dd)
This prints
[{('key2', 2), ('key1', 1), ('key3', 3)}, {('key5', 5), ('key4', 4)}]
This is by any means not something that should be actually done, though. As the first answer already mentioned, you should really use generators to produce the chunks.
Since you've mentioned some kind of parallel processing (hope you aren't going to learn what python's GIL is at that stage, Google it, and see if you are going to be hit by that), at the very least you really don't have to aggregate the itertools.islice result (which is a generator) into a big fat list, but send those straight into processing instead.