'If the redis connection is already in distributed state use it
Otherwise spawn a new distributed connection using .map'

def _pipeline_if_needed(self, operation, *args, **kwargs):

    pipe_needed = (not isinstance(self.redis, BasePipeline))
    if pipe_needed:
        pipe = self.redis.pipeline(transaction=False)
        operation(pipe, *args, **kwargs)
        results = pipe.execute()
    else:
        results = operation(self.redis, *args, **kwargs)
    return results
