BUG: Duplicated columns double when getting them
- [x] I have checked that this issue has not already been reported.

- [x] I have confirmed this bug exists on the latest version of pandas.

- [ ] (optional) I have confirmed this bug exists on the master branch of pandas.

---

**Note**: Please read [this guide](https://matthewrocklin.com/blog/work/2018/02/28/minimal-bug-reports) detailing how to provide the necessary information for us to reproduce your bug.

#### Code Sample, a copy-pastable example

"Realistic" version when this could happen:
```python
import pandas as pd
from io import StringIO

file_data = StringIO("A,B,C,B,D")

# Import csv file (duplicated columns are assigned ".1")
df = pd.read_csv(file_data)
# Some logic which accidentally, makes columns not unique anymore 
df.columns = [col[0] for col in df.columns]
# Some slicing logic or even reassigning the the columns
# It does not matter what type it is (list etc.)
df[df.columns]

```
Minimal version:
```python
import pandas as pd
df = pd.DataFrame(columns=["A", "B", "C", "B", "D"])
df[df.columns]
```
Results in:

| A   | B   | B   | C   | B   | B   | D   |
|-----|-----|-----|-----|-----|-----|-----|

#### Problem description

Duplicated rows double unexpectedly and when having a lot of rows this can go undetected easily. I've only realized this, when exporting to parquet.

#### Expected Output

I would like pandas to raise an error if there are duplicated columns, because other edge case exist there (df[col] returning a DataFrame). Even on csv import, when duplicated columns are silently assigned an ".1" should raise an error.

Of course the quick fix for the problem at hand would be to stop the doubling.

I currently havent looked into why this is happening.

#### Output of ``pd.show_versions()``

<details>

INSTALLED VERSIONS
------------------
commit           : c7f7443c1bad8262358114d5e88cd9c8a308e8aa
python           : 3.7.7.final.0
python-bits      : 64
OS               : Windows
OS-release       : 10
Version          : 10.0.18362
machine          : AMD64
processor        : Intel64 Family 6 Model 142 Stepping 12, GenuineIntel
byteorder        : little
LC_ALL           : None
LANG             : None
LOCALE           : None.None

pandas           : 1.3.1
numpy            : 1.18.5
pytz             : 2020.1
dateutil         : 2.8.1
pip              : 21.1.3
setuptools       : 49.6.0.post20200923
Cython           : 0.29.21
pytest           : None
hypothesis       : None
sphinx           : None
blosc            : None
feather          : None
xlsxwriter       : None
lxml.etree       : 4.6.2
html5lib         : 1.1
pymysql          : None
psycopg2         : None
jinja2           : 2.11.2
IPython          : 7.19.0
pandas_datareader: None
bs4              : 4.9.3
bottleneck       : None
fsspec           : 0.8.4
fastparquet      : None
gcsfs            : None
matplotlib       : 3.1.2
numexpr          : 2.7.0
odfpy            : None
openpyxl         : 3.0.5
pandas_gbq       : None
pyarrow          : 2.0.0
pyxlsb           : None
s3fs             : None
scipy            : 1.7.0
sqlalchemy       : None
tables           : None
tabulate         : 0.8.7
xarray           : 0.16.2
xlrd             : 1.2.0
xlwt             : None
numba            : 0.51.2+0.g9d5709615.dirty

</details>
