def __call__(self, dims):
    line1, line2 = dims
return find_intersections(line1 + self.ent.position, self.ent.velocity,
    self.ent.acceleration, line2 + self.collidable.position, self.
    collidable.velocity, self.collidable.acceleration, self.ent, self.
    collidable)

def entity_intersections(ent, collidable):
    find_inter = FindIntersectionsWrapper(ent, collidable)
pool = multiprocessing.Pool()
return pool.map(find_inter, product(ent.shape, collidable.shape))
Run many functions in parallel, and gather all results in a list