Init distributed torch only if needed (#108)
* add auto-detect to torch dist init
* update tests to infer distributed init status
* prevent crash if dist_init_required is True but already initiliazed
* only init if safe to do so (forgot to add this file in prev commit)