Support both local and distributed training - compiles
Distributed training (unit tests pass, too much data being passed)