Seq2SeqTrainer Distributed: AttributeError and the RuntimeError
The following command (on 8 GPUS) fails with

```python
AttributeError: DistributedDataParallel has no attribute "config"
```


### Command
```bash
export WANDB_PROJECT=dmar
export BS=64
export GAS=1
export m=sshleifer/student_marian_en_ro_6_3
export MAX_LEN=128
python -m torch.distributed.launch --nproc_per_node=8 finetune_trainer.py \
    --tokenizer_name $m --model_name_or_path $m \
    --data_dir wmt_mar_pl \
    --output_dir marian_en_ro_6_3 --overwrite_output_dir --predict_with_generate \
    --learning_rate=3e-4 \
    --warmup_steps 500 --sortish_sampler \
    --fp16 \
    --gradient_accumulation_steps=$GAS \
    --per_device_train_batch_size=$BS --per_device_eval_batch_size=$BS \
    --freeze_encoder --freeze_embeds \
    --num_train_epochs=6 \
    --save_steps 3000 --eval_steps 3000 \
    --max_source_length $MAX_LEN --max_target_length $MAX_LEN --val_max_target_length $MAX_LEN --test_max_target_length $MAX_LEN \
    --do_train --do_eval --do_predict --evaluate_during_training\
    --predict_with_generate --logging_first_step \
    --task translation --label_smoothing 0.1 --n_gpu 8 \
    --run_name builtin_trainer_63_v8_pl \
    "$@"
```



@sgugger After that bug fix, the next bug is:
```
RuntimeError: Precision loss when unpacking double
    tensorized_scalar = torch.Tensor(scalars).cuda()
RuntimeError: Precision loss when unpacking double
Traceback (most recent call last):
  File "finetune_trainer.py", line 442, in <module>
    main()
  File "finetune_trainer.py", line 383, in main
    model_path=model_args.model_name_or_path if os.path.isdir(model_args.model_name_or_path) else None
  File "/home/shleifer/transformers_fork/src/transformers/trainer.py", line 809, in train
    self.log(logs)
  File "/home/shleifer/transformers_fork/src/transformers/trainer.py", line 1031, in log
    total_flos = distributed_broadcast_scalars([self.total_flos]).sum().item()
  File "/home/shleifer/transformers_fork/src/transformers/trainer_utils.py", line 206, in distributed_broadcast_scalars
    tensorized_scalar = torch.Tensor(scalars).cuda()
RuntimeError: Precision loss when unpacking double
```
### Env

Apex installed.
```
- `transformers` version: 3.3.1
- Platform: Linux-4.9.0-11-amd64-x86_64-with-debian-9.12
- Python version: 3.7.4
- PyTorch version (GPU?): 1.5.1+cu101 (True)
- Tensorflow version (GPU?): not installed (NA)
- Using GPU in script?: <fill in>
- Using distributed or parallel set-up in script?: <fill in>
```<|||||>The next error is on @TevenLeScao <|||||>I fixed it, will stuff into 1 PR when everything is working.