trainer.create_model_card should be run by process 0 only in distributed training
### Who can help
@gchhablani, @sgugger

## Information

Trainer.create_model_card() does not check which process is running. In distributed training, all processes would try to write into $output_dir/README.md and sometimes cause crashes.

The problem arises when using run_clm.py in distributed training.

## To reproduce

Steps to reproduce the behavior:

1. Install transformers from local source by pip install -e .
2. Make two small changes to create_model_card() in trainer.py, in order to highlight the issue:
    (1) added a logging into trainer.py right before writing README.md
     (2) appended the output filename with process index.

(Sorry about incorrect indents. I can't make spaces work here)
def create_model_card(self,...):
        training_summary = TrainingSummary.from_trainer( self, language=language,...)
         model_card = training_summary.to_model_card()
         **logger.warning(f"Process {self.args.process_index} writes to README.md!")**
         with open(os.path.join(self.args.output_dir, "README.md" **+ str(self.args.process_index))**   ), "w") as f:
         f.write(model_card)

3. Try run_clm.py with any training task with 2 GPUs, push_to_hub = false, and the modified create_model_card()
4. The end of the script will call trainer.create_model_card(**kwards). You should see from logging both processes tried to create a model card file. The output directory should have two README.md files, one from process 0 and the other from process 1. Without the filename change, the two processes would have tried to write to the same README.md and cause racing in distributed training. I have one of such crashes when training in GPU clusters.

My logging:
```
[INFO|modelcard.py:456] 2021-12-19 19:59:04,324 >> Dropping the following result as it does not have all the necessary fields:
{'task': {'name': 'Causal Language Modeling', 'type': 'text-generation'}}
[WARNING|trainer.py:2643] 2021-12-19 19:59:04,325 >> Process 0 writes to README.md!
[WARNING|trainer.py:2643] 2021-12-19 19:59:04,334 >> Process 1 writes to README.md!
[2021-12-19 19:59:07,398] [INFO] [launch.py:160:main] Process 540006 exits successfully.
[2021-12-19 19:59:08,400] [INFO] [launch.py:160:main] Process 540007 exits successfully.
```

Two README.md in my output directory
```
(gptj) REDMOND.meiyang@GCRSANDBOX354:/tmp/model_output$ ll -t /tmp/model_output
total 23753748
drwxr-xr-x  7 xxxxxxx       4096 Dec 19 19:59 ./
-rw-r--r--  1 xxxxxxx        1108 Dec 19 19:59 README.md1
-rw-r--r--  1 xxxxxxx        1108 Dec 19 19:59 README.md0
```

## Expected behavior

trainer.create_model_card() should allow only process 0 to write so that only one README.md is written

Thanks for flagging! Adding some logic for that in the PR mentioned above.