Welcome to the wonderful world of under informative error messages (or in this case, incorrect because the cube had been processed and it did exist... the error should have read Access Denied because essentially that's what was happening).
Exception Message: The Dollars cube either does not exist or has not been processed.
Microsoft.AnalysisServices.AdomdClient.AdomdConnection.XmlaClientProvider.Microsoft.AnalysisServices.AdomdClient.IExecuteProvider.ExecuteTabular(CommandBehavior behavior, ICommandContentProvider contentProvider, AdomdPropertyCollection commandProperties, IDataParameterCollection parameters)
at Microsoft.AnalysisServices.AdomdClient.AdomdCommand.ExecuteReader(CommandBehavior behavior)
at DMII_Scorecard.IUF.DMII_Scorecard_Data..ctor(DateTime Scorecard_Date, String Filter)
This error came up when our cube was moved from our development server to our test server. I sat puzzeled for two hours, partially because I could run the query in question from the Management Studio, but not from my .NET WebPart. Well, come to find out, the role did not carry through it's attributes on the move. In the 'Edit Role' dialog I needed to make sure all of the security was set properly. There's a 'Cubes' option on the left hand menu which shows the individual access for the cubes in that roll... I needed to set all of my cubes to 'Read' and then set the 'Local Cube/Drillthrough Access' to the value 'Drillthrough and Local Cube'. After doing this my WebPart was again able to run MDX queries against the cube.