Please consider a class as follow:
class Foo:
    def __init__(self, data):
        self.data = data
    def do_task(self):
        #do something with data 
In my application I've a list containing several instances of Foo class. The aim is to execute do_task for all Foo objects. A first implementation is simply:
 #execute tasks of all Foo Object instantiated
 for f_obj in my_foo_obj_list:
     f_obj.do_task()
I'd like to take advantage of multi-core architecture sharing the for cycle between 4 CPUs of my machine.
What's the best way to do it?