Of course you get an error because using CALCULATE enforces a context transition and if you knew anything about context transition, you'd also know that context transition puts ALL THE COLUMNS' (also the calculated ones) values of the current row in the filter context. This is how circular dependency is created behind the scenes.
Please refrain from using CALCULATE in calculated columns, especially in fact tables or you'll be sorry sooner rather than later. Instead, use FILTER only with the correct conditions.
By the way, it's a bad idea to use calculated columns in DAX. You should do it in your ETL layer, that is, in Power Query. The main reason why it's a bad idea is that calculated columns do not get good compression (there are some technical reasons why). Please, try to calculate it in Power Query.
I'd suggest you also read about CALCULATE, context transition and calculated columns in depth.
Best
Darek