Если я правильно понял вопрос, вы хотите выполнить функцию N раз, при этом каждый вызов получает в качестве входных данных выходные данные предыдущего вызова.
Эта цепочка вызовов функций по своей природе является последовательной. Нет (общего) способа распараллелить это.
Единственная надежда, которую я вижу, состоит в том, что если природа функции и входных данных (которые вы не указали) позволяет распараллелить один вызов функции, то вы можете сделать это и выполнить итерацию / создание цепочки на уровне контроля работы. Это значит: если ваш ввод - это набор данных, а ваша функция - это некое преобразование для этого набора данных, выход которого является допустимым вводом для функции, и если это преобразование может быть распараллелено, тогда может быть способ используйте Hadoop здесь.
Если вы можете предоставить более подробную информацию, я буду рад дополнить этот ответ более конкретными предложениями.