Fix bug in run_*.py scripts: double wrap into DataParallel during eval
This bug is present in several scripts in `examples`:
* `examples/run_language_modeling.py`
* `examples/run_multiple_choice.py`
* `examples/run_xnli.py`
* `examples/ner/run_ner.py`
* `examples/mm-imdb/run_mmimdb.py`
* `examples/hans/test_hans.py`

The problem is exactly the same as it was in #1801 and in #1504:

During the evaluation, we are trying to wrap the `model` into `DataParallel` second time (we did it already during training). As a result we have: 
> "RuntimeError: module must have its parameters and buffers on device cuda:0 (device_ids[0]) but found one of them on device: cuda:1" (ids of devices may differ)

The fix is straightforward:
Before:
```python
# multi-gpu eval
if args.n_gpu > 1:
    model = torch.nn.DataParallel(model)
```

After:
```python
# multi-gpu eval
if args.n_gpu > 1 and not isinstance(model, torch.nn.DataParallel):
    model = torch.nn.DataParallel(model)
```

Merging this, though it will be rendered obsolete (for a subset of the script initially) by #3800 